IF exists(SELECT * FROM dbo.sysobjects WHERE name='fr_rekenwerk' AND xtype='P') 
BEGIN
	DROP PROCEDURE fr_rekenwerk
END
GO

CREATE     procedure fr_rekenwerk(@inschrijvingsNr char(7),@aard char(1),
	@periode char(2),@jaar char(4))
as
set nocount on

if (dbo.fr_rekenenMoet(@aard,@periode,@jaar,@inschrijvingsNr)=0) return

--print 'start: ' + convert(varchar(50),getDate(),109)

declare @groepsnaam varchar(20)
select @groepsnaam = groepsnaam from fr_rapportGroepen 
where inschrijvingsNr=@inschrijvingsNr
	and aard = @aard 
		and periode=@periode

declare @vak varchar(20)
declare @code varchar(20)
declare @rekenwijze varchar(100)
declare @parameters varchar(1000)

------------------------------------------
--      INDIVIDUELE BEREKENINGEN
------------------------------------------

delete from fr_individueleCijfers
   where aard = @aard 
	and periode = @periode 
	  and inschrijvingsNr = @inschrijvingsNr

--print 'start individueel rekenwerk: ' + convert(varchar(50),getDate(),109)

if exists(select * from fr_individueleRekenwijze as fir
	where fir.aard = @aard
	  and fir.periode = @periode
	    and fir.rekenwijze = 'maandprocent' 
   	      and fir.groepsnaam = @groepsnaam)
	execute freken_maandprocent @aard,@periode,@groepsnaam,@inschrijvingsNr

if exists(select * from fr_individueleRekenwijze as fir
	where fir.aard = @aard
	  and fir.periode = @periode
	    and fir.rekenwijze = 'maandoptien' 
   	      and fir.groepsnaam = @groepsnaam)
	execute freken_maandoptien @aard,@periode,@groepsnaam,@inschrijvingsNr

if exists(select * from fr_individueleRekenwijze as fir
	where fir.aard = @aard
	  and fir.periode = @periode
	    and fir.rekenwijze = 'maandtotaal' 
   	      and fir.groepsnaam = @groepsnaam)
	execute freken_maandtotaal @aard,@periode,@groepsnaam,@inschrijvingsNr


if exists(select * from fr_individueleRekenwijze as fir
	where fir.aard = @aard
	  and fir.periode = @periode
	    and fir.rekenwijze = 'trimprocentDW' 
   	      and fir.groepsnaam = @groepsnaam)
execute freken_trimprocentDW @aard,@periode,@groepsnaam,@inschrijvingsNr

if exists(select * from fr_individueleRekenwijze as fir
	where fir.aard = @aard
	  and fir.periode = @periode
	    and fir.rekenwijze = 'trimprocentEX' 
   	      and fir.groepsnaam = @groepsnaam)
execute freken_trimprocentEX @aard,@periode,@groepsnaam,@inschrijvingsNr

if exists(select * from fr_individueleRekenwijze as fir
	where fir.aard = @aard
	  and fir.periode = @periode
	    and fir.rekenwijze = 'trimprocentTOT' 
   	      and fir.groepsnaam = @groepsnaam)
execute freken_trimprocentTOT @aard,@periode,@groepsnaam,@inschrijvingsNr


if exists(select * from fr_individueleRekenwijze as fir
	where fir.aard = @aard
	  and fir.periode = @periode
	    and fir.rekenwijze = 'trimtotaalDW' 
   	      and fir.groepsnaam = @groepsnaam)
execute freken_trimTotaalDW @aard,@periode,@groepsnaam,@inschrijvingsNr


if exists(select * from fr_individueleRekenwijze as fir
	where fir.aard = @aard
	  and fir.periode = @periode
	    and fir.rekenwijze = 'trimtotaalEX' 
   	      and fir.groepsnaam = @groepsnaam)
execute freken_trimTotaalEX @aard,@periode,@groepsnaam,@inschrijvingsNr

if exists(select * from fr_individueleRekenwijze as fir
	where fir.aard = @aard
	  and fir.periode = @periode
	    and fir.rekenwijze = 'trimtotaalTOT' 
   	      and fir.groepsnaam = @groepsnaam)
execute freken_trimTotaalTOT @aard,@periode,@groepsnaam,@inschrijvingsNr

if exists(select * from fr_individueleRekenwijze as fir
	where fir.aard = @aard
	  and fir.periode = @periode
	    and fir.rekenwijze = 'rubriek' 
   	      and fir.groepsnaam = @groepsnaam)
execute freken_rubriek @aard,@periode,@groepsnaam,@inschrijvingsNr

if exists(select * from fr_individueleRekenwijze as fir
	where fir.aard = @aard
	  and fir.periode = @periode
	    and fir.rekenwijze = 'rubriekSubtotaal' 
   	      and fir.groepsnaam = @groepsnaam)
execute freken_rubriekSubtotaal @aard,@periode,@groepsnaam,@inschrijvingsNr

------------------------------------------
--      COLLECTIEVE BEREKENINGEN
------------------------------------------
-- Wis de oude gegevens

delete from fr_CollectieveCijfers
where aard=@aard 
	and periode = @periode 
	  and inschrijvingsNr = @inschrijvingsNr

--print 'start collectief rekenwerk: ' + convert(varchar(50),getDate(),109)

if exists(select * from fr_collectieveRekenwijze as fir
	where fir.aard = @aard
	  and fir.periode = @periode
	    and fir.rekenwijze = 'maandVakgemiddeldeKlas' 
   	      and fir.groepsnaam = @groepsnaam)
execute freken_maandVakgemiddeldeKlas @aard,@periode,@groepsnaam,@inschrijvingsNr

if exists(select * from fr_collectieveRekenwijze as fir
	where fir.aard = @aard
	  and fir.periode = @periode
	    and fir.rekenwijze = 'maandTotaalgemiddeldeKlas' 
   	      and fir.groepsnaam = @groepsnaam)
execute freken_maandTotaalgemiddeldeKlas @aard,@periode,@groepsnaam,@inschrijvingsNr

if exists(select * from fr_collectieveRekenwijze as fir
	where fir.aard = @aard
	  and fir.periode = @periode
	    and fir.rekenwijze like 'trimDWGemiddeldeKlas' 
   	      and fir.groepsnaam = @groepsnaam)
execute freken_trimDWGemiddeldeKlas @aard,@periode,@groepsnaam,@inschrijvingsNr

if exists(select * from fr_collectieveRekenwijze as fir
	where fir.aard = @aard
	  and fir.periode = @periode
	    and fir.rekenwijze like 'trimEXGemiddeldeKlas' 
   	      and fir.groepsnaam = @groepsnaam)
execute freken_trimEXGemiddeldeKlas @aard,@periode,@groepsnaam,@inschrijvingsNr


if exists(select * from fr_collectieveRekenwijze as fir
	where fir.aard = @aard
	  and fir.periode = @periode
	    and fir.rekenwijze like 'trimTOTGemiddeldeKlas' 
   	      and fir.groepsnaam = @groepsnaam)
execute freken_trimTOTGemiddeldeKlas @aard,@periode,@groepsnaam,@inschrijvingsNr


if exists(select * from fr_collectieveRekenwijze as fir
	where fir.aard = @aard
	  and fir.periode = @periode
	    and fir.rekenwijze like 'trimTotaalGemiddeldeDWKlas' 
   	      and fir.groepsnaam = @groepsnaam)
execute freken_trimTotaalGemiddeldeDWKlas @aard,@periode,@groepsnaam,@inschrijvingsNr


if exists(select * from fr_collectieveRekenwijze as fir
	where fir.aard = @aard
	  and fir.periode = @periode
	    and fir.rekenwijze like 'trimTotaalGemiddeldeEXKlas' 
   	      and fir.groepsnaam = @groepsnaam)
execute freken_trimTotaalGemiddeldeEXKlas @aard,@periode,@groepsnaam,@inschrijvingsNr


if exists(select * from fr_collectieveRekenwijze as fir
	where fir.aard = @aard
	  and fir.periode = @periode
	    and fir.rekenwijze like 'trimTotaalGemiddeldeTOTKlas' 
   	      and fir.groepsnaam = @groepsnaam)
execute freken_trimTotaalGemiddeldeTOTKlas @aard,@periode,@groepsnaam,@inschrijvingsNr

if exists(select * from fr_collectieveRekenwijze as fir
	where fir.aard = @aard
	  and fir.periode = @periode
	    and fir.rekenwijze like 'rubriekGemiddeldeKlas' 
   	      and fir.groepsnaam = @groepsnaam)
execute freken_rubriekGemiddeldeKlas @aard,@periode,@groepsnaam,@inschrijvingsNr

if exists(select * from fr_collectieveRekenwijze as fir
	where fir.aard = @aard
	  and fir.periode = @periode
	    and fir.rekenwijze like 'rubriekGemiddeldeLes' 
   	      and fir.groepsnaam = @groepsnaam)
execute freken_rubriekGemiddeldeLes @aard,@periode,@groepsnaam,@inschrijvingsNr

if exists(select * from fr_collectieveRekenwijze as fir
	where fir.aard = @aard
	  and fir.periode = @periode
	    and fir.rekenwijze like 'rubriekGemiddeldeJaar' 
   	      and fir.groepsnaam = @groepsnaam)
execute freken_rubriekGemiddeldeJaar @aard,@periode,@groepsnaam,@inschrijvingsNr

if exists(select * from fr_collectieveRekenwijze as fir
	where fir.aard = @aard
	  and fir.periode = @periode
	    and fir.rekenwijze like 'rubriekSubtotaalGemiddeldeKlas' 
   	      and fir.groepsnaam = @groepsnaam)
execute freken_rubriekSubtotaalGemiddeldeKlas @aard,@periode,@groepsnaam,@inschrijvingsNr

if exists(select * from fr_collectieveRekenwijze as fir
	where fir.aard = @aard
	  and fir.periode = @periode
	    and fir.rekenwijze like 'rubriekSubtotaalGemiddeldeLes' 
   	      and fir.groepsnaam = @groepsnaam)
execute freken_rubriekSubtotaalGemiddeldeLes @aard,@periode,@groepsnaam,@inschrijvingsNr

if exists(select * from fr_collectieveRekenwijze as fir
	where fir.aard = @aard
	  and fir.periode = @periode
	    and fir.rekenwijze like 'rubriekSubtotaalGemiddeldeJaar' 
   	      and fir.groepsnaam = @groepsnaam)
execute freken_rubriekSubtotaalGemiddeldeJaar @aard,@periode,@groepsnaam,@inschrijvingsNr

--print 'eind rekenwerk: ' + convert(varchar(50),getDate(),109)